00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef DEANIMATEDMESH_H
00031 #define DEANIMATEDMESH_H
00032
00033 #include "deGlobalTypes.hpp"
00034 #include "deMath.hpp"
00035 #include "deResource.hpp"
00036
00037 #if defined(DEANIMATEDMESH_DLL_EXPORTS) || defined(DESTINY3D_EXPORT_ALL)
00038 # define ACTOR_API extern "C" DEDLL_EXPORT
00039 #elif defined(DESTINY3D_STATIC_LINK)
00040 # define ACTOR_API extern "C"
00041 #else
00042 # define ACTOR_API extern "C" DEDLL_IMPORT
00043 #endif
00044
00045 #ifdef USING_DESTINY3D
00046 #ifdef _DEBUG
00047 # ifdef DESTINY3D_STATIC_LINK
00048 # pragma comment(lib, "deAnimatedMesh_sd")
00049 # else
00050 # pragma comment(lib, "deAnimatedMeshd")
00051 # endif //DESTINY3D_STATIC_LINK
00052 #else
00053 # ifdef DESTINY3D_STATIC_LINK
00054 # pragma comment(lib, "deAnimatedMesh_s")
00055 # else
00056 # pragma comment(lib, "deAnimatedMesh")
00057 # endif //DESTINY3D_STATIC_LINK
00058 #endif //_DEBUG
00059 #endif //USING_DESTINY3D
00060
00061 class IdeAnimatedMesh;
00062 class IdeBitmapProxy;
00063 class IdeRenderTexture;
00064 class IdeVertexBuffer;
00065 class IdeDriver;
00066
00067 ACTOR_API void IdeAnimatedMesh_Initialize();
00068 ACTOR_API long IdeAnimatedMesh_GetRscInterfaceID();
00069
00070
00071 DE3D_INTERFACE(IdeAnimatedMesh, IdeResourceBase)
00072 {
00073 protected:
00074 virtual ~IdeAnimatedMesh() {}
00075 public:
00076 virtual IdeVertexBuffer* GetVBuffer() = 0;
00077 virtual IdeVertexBuffer* GetVBuffer(float Time) = 0;
00078 virtual IdeRenderTexture* GetTexture(IdeDriver * pDriver) = 0;
00079
00080 virtual int GetNumFrames() = 0;
00081 virtual int GetNumVerts() = 0;
00082 virtual int GetNumTriangles() = 0;
00083 virtual int GetNumSkins() = 0;
00084 virtual int GetFrameSize() = 0;
00085 virtual int GetNumTexCoords() = 0;
00086
00087 virtual int GetCurrentFrame() = 0;
00088 virtual int GetNextFrame() = 0;
00089 virtual float GetInterpolation() = 0;
00090
00091 virtual char *GetSkinName(int index) = 0;
00092
00093 virtual void SetAnimSpeed(float FramesPerSec) = 0;
00094 virtual deBoolean SetCurrentAnim(const char* AnimName) = 0;
00095 virtual deBoolean SetCurrentAnim(int AnimNum) = 0;
00096 virtual float GetAnimSpeed() = 0;
00097 virtual int GetCurrentAnim() = 0;
00098
00099 virtual void SetCurrentFrame(int frame) = 0;
00100 virtual void SetNextFrame(int frame) = 0;
00101
00102 virtual void SetTexture(const char *filename) = 0;
00103 virtual void SetTexture(IdeBitmapProxy *tex) = 0;
00104 };
00105
00106
00107
00108 #endif // DEANIMATEDMESH_H